package web.java.listener;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpSession;

public class ContextListener implements ServletContextListener{

	@Override
	public void contextInitialized(ServletContextEvent arg0) {
		/**
		 * 系统启动监听
		 * 注意，context域属于服务器类，每次开启关闭都是服务器的开启和关闭，和浏览器无关，不受浏览器关闭的制约
		 * 所以，在线人数只能放在context域中才能获取到不同服务器上线人数
		 * 1、每次系统启动都创建一个集合，用来添加用户人数
		 * */
		List<String> onlineUserList=new ArrayList<String>();
		//将集合保存到context域中
		arg0.getServletContext().setAttribute("onlineUserList",onlineUserList);
	}
	
	@Override
	public void contextDestroyed(ServletContextEvent arg0) {
		/**
		 * 系统关闭，移除属性
		 * */
		ServletContext sc=arg0.getServletContext();
		Object obj=sc.getAttribute("onlineUserList");
		if(obj!=null){
			sc.removeAttribute("onlineUserList");
		}
	}

}
